package org.example.controller.SpringBoot300.ut;

import org.example.util.file.FileUtil;
import org.example.util.log.Logac;
import org.example.util.video.VideoMp4Util;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
 * @auther admin闫
 * @Descriptopn 合成视频（背景音乐+视频+语音文字）
 * @date 2024/4/8 20:03
 */
public class Mp3AndMp4 {
    public static String lspath="H:\\毕业设计工作目录\\batch_processing\\batch_processing\\ls";//临时转存目录
    public static String outpath="H:\\短视频工作目录\\newMp4";//最终输出目录

    public static void main(String[] args) {

        List<String> allDGFiles = FileUtil.getAllDGFiles("H:\\短视频工作目录\\mudidir");
        List<String> paths = new ArrayList<>();
        for (String allDGFile : allDGFiles) {
            String fileType = FileUtil.getFileType(allDGFile);
            if (fileType.equals("mp4")) {
//                System.out.println(allDGFile);
                paths.add(allDGFile);
            }
        }
//        System.out.println(paths.size());

        int i = 0;
        for (String path : paths) {
            File file = new File(path);
            File parentFile = file.getParentFile();
            String substring = file.getName().substring(0, file.getName().length() - 4);
            String mp3filepath="G:\\360MoveData\\Users\\Administrator\\Desktop\\好的" + "\\" + substring + ".mp3";
            boolean fileExists = FileUtil.isFileExists(mp3filepath);
            if (fileExists) {
                i++;
//                System.out.println(path);
//                System.out.println(parentFile);
                String fileName = FileUtil.getFileName(parentFile.toString());
//                System.out.println(fileName);
//                String s = VideoMp4Util.videoMp4AndMp3(path, mp3filepath, lspath + "\\" + fileName + ".mp4");
//                if (!s.equals("false")){
//                    String videopath=lspath + "\\" + fileName + ".mp4";
                    int videoTime = VideoMp4Util.getVideoTime(path);
                    String mp3zuizhong="";
                    while (true){
                        String s1 = rundemMp3();
                        int mp3time = VideoMp4Util.getVideoTime(s1);
                        if (videoTime>mp3time){
                            mp3zuizhong=s1;
                            break;
                        }else {
                            mp3zuizhong="H:\\毕业设计工作目录\\batch_processing\\batch_processing\\mp3background\\long2.MP3";
                            break;
                        }
                    }
                    String outpace = VideoMp4Util.videoMp4AndMp3(path, mp3zuizhong, outpath + "\\" + fileName + ".mp4");
                    if (outpace.equals("false")){
                        Logac.log(outpace+"---"+fileName+"第二次转换失败");
                    }
//                }else {
//                    Logac.log(s+"---"+fileName+"第一次转换失败");
//                }

            } else {
//                File file1=new File(path);
//                File parentFile1 = file1.getParentFile();
//                System.out.println(parentFile1);
            }

        }
    }


    //初始化背景音乐目录
    public static List<String> mp4=FileUtil.getAllDGFiles("H:\\毕业设计工作目录\\batch_processing\\batch_processing\\mp3background");


    /**
     * 随机抽取背景音乐
     * @return 背景音乐地址
     */
    public static String rundemMp3(){
        Random ran1 = new Random();
        // 生成一个介于0到12之间的随机数
        int r1 = ran1.nextInt(10); // nextInt 方法生成的随机数范围是[0, n)

        if (r1>5){
            return "H:\\毕业设计工作目录\\batch_processing\\batch_processing\\mp3background\\long123456.MP3";
        }else {
            // 创建一个 Random 对象
            Random random = new Random();
            // 生成一个介于0到12之间的随机数
            int randomNumber = random.nextInt(13); // nextInt 方法生成的随机数范围是[0, n)
            String s = mp4.get(randomNumber);
            return s;
        }

    }



}
